﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inspire.Main.UIElements
{
    interface INavHost
    {
        /// <summary>
        /// Allows a user's navigation request made by clicking a NavButton to be propogated up through
        /// all Controls that house the button. Eventually, the request reaches the top level and the
        /// main Frame's content is changed.
        /// </summary>
        /// <param name="navigationUri">The URI of the pageIndex to display in the main Frame.</param>
        void PropogateNavUp(string navigationUri);

        /// <summary>
        /// Allows a user's navigation request made outside the primary Navigation Panel to be propogated
        /// down through all elements. Such a request is probably made via the shortcut icons at the top
        /// of the window. Eventually, the request will reach the NavExpander and NavButton levels. The matching
        /// NavButton will be disabled and its NavExpander will be opened. All other NavExpanders will be closed.
        /// 
        /// The purpose of this method is to keep the Navigation menu synchronized with the current pageIndex
        /// even when shortcuts outside of the menu are used.
        /// </summary>
        /// <param name="navigationUri">The URI of the pageIndex to display in the main Frame.</param>
        void PropogateNavDown(string navigationUri);
    }
}
